import socket


def main():
    # 1、创建套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 2、绑定一个本地信息
    local_addr = ('', 8080)
    udp_socket.bind(local_addr)
    # 3、接收数据
    while True:
        recv_data = udp_socket.recvfrom(1024)
        # recv_data  元组（数据，（发送方ip，端口号））
        recv_msg = recv_data[0]  # 存储接受的数据
        send_addr = recv_data[1]  # 存储发送方的地址信息
        if recv_msg == b' ':
            break
        # 4、打印收到的数据
        print("%s:%s" % (str(send_addr), recv_msg.decode("gbk")))
        # print(recv_data)
    # 5 关闭套接字
    udp_socket.close()


if __name__ == "__main__":
    main()
